package com.business.user.service;


import com.baomidou.mybatisplus.plugins.Page;
import com.business.common.dto.R;
import com.business.common.utils.PageUtils;
import com.business.user.dto.UserParams;
import com.business.user.entity.UserConcern;
import com.business.user.entity.UserDetails;

import java.util.List;
import java.util.Set;

/**
 * 关注表:业务接口类
 * @author chenjiehong
 * @date 2019-11-29 14:28:27
 * @since 1.0
 */
public interface UserConcernService {
    
    /**
     * 新增关注表
     * 
     * 
     * @param userConcern
     * @date 2019-11-29 14:28:27
     */
    UserConcern add(UserConcern userConcern);


    /**
     * 删除关注
     *
     *
     * @param userConcern
     * @date 2019-11-29 14:28:27
     */
    Integer delete(UserConcern userConcern);

    /**
     * 删除关注
     *
     *
     * @param userConcernIdList
     * @date 2019-11-29 14:28:27
     */
    Integer deleteList(Integer userId, List<Integer> userConcernIdList);

    /**
     * 查询所有关注的用户id
     * @param userId
     * @return
     */
    Set<Integer> queryFriendList(Integer userId);
    
    /**
     * 分页查询已关注的好友
     * 
     * 
     * @param page
     * @param userId
     * @date 2019-11-29 14:28:27
     */
    PageUtils queryFriendPage(Page<UserDetails> page, Integer userId, UserParams userParams);

    /**
     * 分页查询粉丝列表
     * @param page
     * @param userId
     * @return
     */
    PageUtils queryFansPage(Page<UserDetails> page, Integer userId, UserParams userParams);

    /**
     * 分页查询 用户
     * @param page
     * @param userParams
     * @return
     */
    PageUtils queryUserPage(Page<UserDetails> page,Integer userId, UserParams userParams);

    /**
     * 查询推荐列表
     * @param page
     * @param userId
     * @return
     */
    PageUtils queryRecommendUserPage(Page<UserDetails> page, Integer userId);

}

